package coroutine

import kotlin.coroutines.*

/**
 * kotlin协程,代码示例
 */
fun main() {
    //启动协程(目前还是在主线程执行),会等待结果阻塞主线程
    continuation.resume(Unit)
    println("主线程")
}

//创建一个协程,5作为返回值返回
val continuation = suspend { 5 }.createCoroutine(object : Continuation<Int> {
    override val context: CoroutineContext
        get() = EmptyCoroutineContext

    //获取结果
    override fun resumeWith(result: Result<Int>) {
        //成功后打印结果
        result.onSuccess {
            println(it)
        }
    }
})

/**
 * 一个简单的协程
 */
suspend fun simpleOne() {

}